<template>
  <!-- 
    执行vue动画的前提:
      有动画效果的元素必须通过v-if或v-show控制是否显示
      该元素外部嵌套 transition组件
   -->
  <div>
    <button @click="isShow = !isShow"> 显示与隐藏</button>
    <transition>
      <div class="box" v-show="isShow"></div>
    </transition>
    

  </div>
</template>

<script>
export default {
  data() {
    return {
      isShow:true
    }
  },
}
</script>

<style scoped>
.box{
  width: 100px;
  height: 100px;
  background:tomato ;
}

/* 
动画元素在 进入时和离开后 是同一个样式
元素在 进入后和离开时 是同一个样式
*/
.v-enter,
.v-leave-to {
  opacity: 0;
}

.v-leave,
.v-enter-to{
  opacity: 1;
}

/* 
控制动画元素 在进入和离开的过程中
*/
.v-enter-active{
  transition: all 1s linear;
}

.v-leave-active{
  transition: all .5s linear;
}


</style>